[IA64] Fix return value of hypercall from VT-i domain
authorawilliam@xenbuild2.aw <awilliam@xenbuild2.aw>
Mon, 12 Mar 2007 14:42:11 +0000 (08:42 -0600)
committerawilliam@xenbuild2.aw <awilliam@xenbuild2.aw>
Mon, 12 Mar 2007 14:42:11 +0000 (08:42 -0600)
Signed-off-by: Tsunehisa Doi <Doi.Tsunehisa@jp.fujitsu.com>
xen/arch/ia64/vmx/vmx_entry.S

index 74bf2ca4d32c4853c7cefbd8d26de721d84f0273..ef400c4f5341e03063f55868d9cbec69afe95e4d 100644 (file)
@@ -477,6 +477,11 @@ GLOBAL_ENTRY(ia64_leave_hypercall)
      * resumes at .work_processed_syscall with p6 set to 1 if the extra-work-check
      * needs to be redone.
      */
+    ;;
+    adds r16=PT(R8)+16,r12
+    ;;
+    st8 [r16]=r8
+    ;;
 (pUStk) rsm psr.i
     cmp.eq pLvSys,p0=r0,r0             // pLvSys=1: leave from syscall
 (pUStk) cmp.eq.unc p6,p0=r0,r0         // p6 <- pUStk
@@ -484,6 +489,11 @@ GLOBAL_ENTRY(ia64_leave_hypercall)
     br.call.sptk.many b0=leave_hypervisor_tail
 .work_processed_syscall:
     //clean up bank 1 registers
+    ;;
+    adds r16=PT(R8)+16,r12
+    ;;
+    ld8 r8=[r16]
+    ;;
     mov r16=r0
     mov r17=r0
     mov r18=r0